Deadlock

Definition

“A deadlock occurs when two or more tasks permanently block each other by each task having a lock on a resource which the other tasks are trying to lock”
A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause.

Conditions For Deadlock:

  1. Mutual exclusion condition. Each resource is either currently assigned to exactly one process or is available.
  2. Hold and wait condition. Processes currently holding resources granted earlier can request new resources.
  3. No preemption condition. Resources previously granted cannot be forcibly taken away from a process. They must be explicitly released by the process holding them.
  4. Circular wait condition. There must be a circular chain of two or more processes, each of which is waiting for a resource held by the next member of the chain.

All four of these conditions must be present for a deadlock to occur. If one of them is absent, no deadlock is possible.

 

 

Deadlock by V. Vanthana, Dept of CA